/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package BusinessTier;

import DataTier.AdicaoDAO;
import EntitiesTier.ClAdicao;
import java.io.IOException;
import java.util.List;

/**
 *
 * @author Douglas
 */
public class AdicaoBUS {
    
    public List<ClAdicao> listar() throws Exception
    {
        try
        {
            AdicaoDAO dao = new AdicaoDAO();
            return dao.todos();
        }
        catch(IOException  e)
        {
            System.err.println("Erro: " + e.getMessage());
            return null;
        }    
    }
    
    public int inserir(ClAdicao obj) throws Exception
    {
        try
        {
            if(valida_adicao(obj))
            {
                AdicaoDAO dao = new AdicaoDAO();
                obj.setADIC_COD(dao.incluir(obj));
            }
        }
        catch(IOException  e)
        {
            System.err.println("Erro: " + e.getMessage());
        }
        finally
        {
           return obj.getADIC_COD();
        }
    }
    
    public void atualizar(ClAdicao obj) throws Exception
    {
        try
        {
            if(valida_adicao(obj))
            {
                AdicaoDAO dao = new AdicaoDAO();
                dao.atualizar(obj);            
            }
        }
        catch(IOException  e)
        {
            System.err.println("Erro: " + e.getMessage());
        }
    }
    
    public ClAdicao buscar(int cod_adic) throws Exception
    {
        try
        {
            AdicaoDAO dao = new AdicaoDAO();
            return dao.procurar(cod_adic);
        }
        catch(IOException  e)
        {
            System.err.println("Erro: " + e.getMessage());
            return null;
        }
    }
    
    public List <ClAdicao> buscar_contrato(int cod_cont) throws Exception
    {
        try
        {
            AdicaoDAO dao = new AdicaoDAO();
            return dao.todos(cod_cont);
        }
        catch(IOException  e)
        {
            System.err.println("Erro: " + e.getMessage());
            return null;
        }
    }
    
    public void excluir(int cod_adic) throws Exception
    {
        try
        {
            AdicaoDAO dao = new AdicaoDAO();
            dao.excluir(cod_adic);
        }
        catch(IOException  e)
        {
            throw new Exception("Erro: " + e.getMessage());
        }
    }
    
    public void excluir_contrato(int cod_cont) throws Exception
    {
        try
        {
            AdicaoDAO dao = new AdicaoDAO();
            dao.excluir_contrato(cod_cont);
        }
        catch(IOException  e)
        {
            
            //MessageCreationException.NOT_LOCALIZABLE.println("Erro: " + e.getMessage());
        }
    }
    
    public boolean valida_adicao(ClAdicao obj) throws Exception
    {
            if(obj.getADIC_CONT() == 0)
            {
                throw new Exception("Deve selecionar um contrato.");
            }
            
            if(obj.getADIC_DATA() == null)
            {
                throw new Exception("Deve preencher a data da adição.");
            }
            
            if(obj.getADIC_TEMPO() == 0)
            {
                throw new Exception("Deve preencher o tempo de adição.");
            }
            
            if(obj.getADIC_CONT() == 0)
            {
                throw new Exception("Deve preencher um contrato.");
            }
            return true;       
    }
    
}
